﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ПорядокНалогообложенияИмущества
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"0c07ce07-faa6-41bc-946b-393a0ae93626\", \"Представление\":\"ОсобыеЛьготыНеУстановлены\"}")]
		ОсобыеЛьготыНеУстановлены = 0,//Особые льготы не установлены
		[EnumMember(Value = "{\"Ссылка\":\"29bbc58e-9782-43b6-a77a-3ca9c7fb2104\", \"Представление\":\"ОсвобождаетсяОтНалогообложения\"}")]
		ОсвобождаетсяОтНалогообложения = 1,//Освобождается от налогообложения
		[EnumMember(Value = "{\"Ссылка\":\"0436483a-5feb-4180-9608-87d91a9bde26\", \"Представление\":\"ОблагаетсяПоСниженнойСтавке\"}")]
		ОблагаетсяПоСниженнойСтавке = 2,//Облагается по сниженной ставке
		[EnumMember(Value = "{\"Ссылка\":\"4a7bc47f-0b15-4cc6-8fb5-2c68988e6c78\", \"Представление\":\"НеПодлежитНалогообложению\"}")]
		НеПодлежитНалогообложению = 3,//Не подлежит налогообложению
	}
	public static partial class ПорядокНалогообложенияИмущества_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ОсобыеЛьготыНеУстановлены = new Guid("3a396b94-e90a-2636-41bc-faa60c07ce07");//Особые льготы не установлены
		public static readonly Guid ОсвобождаетсяОтНалогообложения = new Guid("a93c7aa7-fbc7-0421-43b6-978229bbc58e");//Освобождается от налогообложения
		public static readonly Guid ОблагаетсяПоСниженнойСтавке = new Guid("d9870896-9b1a-26de-4180-5feb0436483a");//Облагается по сниженной ставке
		public static readonly Guid НеПодлежитНалогообложению = new Guid("682cb58f-8e98-786c-4cc6-0b154a7bc47f");//Не подлежит налогообложению
		public static ПорядокНалогообложенияИмущества Получить(this ПорядокНалогообложенияИмущества Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ПорядокНалогообложенияИмущества Получить(this ПорядокНалогообложенияИмущества Значение, Guid Ссылка)
		{
			if(Ссылка == ОсобыеЛьготыНеУстановлены)
			{
				return ПорядокНалогообложенияИмущества.ОсобыеЛьготыНеУстановлены;
			}
			else if(Ссылка == ОсвобождаетсяОтНалогообложения)
			{
				return ПорядокНалогообложенияИмущества.ОсвобождаетсяОтНалогообложения;
			}
			else if(Ссылка == ОблагаетсяПоСниженнойСтавке)
			{
				return ПорядокНалогообложенияИмущества.ОблагаетсяПоСниженнойСтавке;
			}
			else if(Ссылка == НеПодлежитНалогообложению)
			{
				return ПорядокНалогообложенияИмущества.НеПодлежитНалогообложению;
			}
			return ПорядокНалогообложенияИмущества.ПустаяСсылка;
		}
		public static byte[] Ключ(this ПорядокНалогообложенияИмущества Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ПорядокНалогообложенияИмущества Значение)
		{
			switch (Значение)
			{
				case ПорядокНалогообложенияИмущества.ОсобыеЛьготыНеУстановлены: return ОсобыеЛьготыНеУстановлены;
				case ПорядокНалогообложенияИмущества.ОсвобождаетсяОтНалогообложения: return ОсвобождаетсяОтНалогообложения;
				case ПорядокНалогообложенияИмущества.ОблагаетсяПоСниженнойСтавке: return ОблагаетсяПоСниженнойСтавке;
				case ПорядокНалогообложенияИмущества.НеПодлежитНалогообложению: return НеПодлежитНалогообложению;
			}
			return Guid.Empty;
		}
	}
}